{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "os.sys.path.append(os.path.dirname(os.path.abspath('.')))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据准备"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from datasets.dataset import load_wine"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "data=load_wine()\n",
    "X=data.data\n",
    "Y=data.target\n",
    "\n",
    "from preprocessing.StandardScaler import StandardScaler\n",
    "\n",
    "X=StandardScaler().fit_transform(X)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型基本\n",
    "首先了解一下协方差矩阵$\\Sigma$。对于一维数据，我们常用的统计量为**均值**与**方差**；而在多维数据情况下，通常需要分析不同纬度变量之间的关系，由此衍生出协方差矩阵：\n",
    "$$\n",
    "\\Sigma=\n",
    " \\left[\n",
    " \\begin{matrix}\n",
    "   var(x_{1},x_{1}) & \\cdots & var(x_{m},x_{1}) \\\\\n",
    "   \\vdots & \\ddots & \\vdots \\\\\n",
    "   var(x_{m},x_{1}) & \\cdots & var(x_{m},x_{m})\n",
    "  \\end{matrix}\n",
    "  \\right]\n",
    "$$\n",
    "协方差矩阵有一个重要的性质可用于PCA：协方差矩阵最大特征值对应的特征向量总是指向数据最大方差的方向；且第二大特征值对应的特征向量正交于第一特征向量，以此类推。设存在向量$\\vec{v}$与标量$\\lambda$满足：\n",
    "$$\n",
    "\\Sigma\\vec{v}=\\lambda\\vec{v}\n",
    "$$\n",
    "则$\\lambda$与$\\vec{v}$分别为$\\Sigma$的特征值于特征向量。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "covar=np.cov(X.T)    # 计算特征间的协方差矩阵，需要先转置\n",
    "\n",
    "eigval,eigvec=np.linalg.eig(covar)    # 注意特征向量是以列形式返回的\n",
    "top_idx=np.argsort(eigval)[::-1]    # 特征值的排序索引\n",
    "\n",
    "top_vec=eigvec[:,top_idx[:2]]    # 取前两个特征向量\n",
    "\n",
    "X_trans=X.dot(top_vec)    # 与多少个特征向量相乘即压缩到多少维"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.scatter(X_trans[:,0],X_trans[:,1],c=Y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
